package com.itheima.crawler;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;

/**
 * 导入jar
 */
public class JsoupIApi {
    public static void main(String[] args) throws Exception {
//        需求1：获取index.html中所有h3标签名称的元素列表并打印输出 getElementsByTag()
//        需求2：获取index.html中所有元素含有class属性值为item并打印输出 getElementsByClass()
//        需求3：获取index.html中所有元素含有属性data-toggle所有元素列表并打印输出 getElementsByAttribute()
//        需求4：获取index.html中元素属性id="footer"的一个元素并打印输出 getElementById()
//        需求5：获取index.html中元素属性id="footer"的一个元素的父元素标签名称并打印输出
//        需求6：获取index.html中元素属性id="footer"的元素的父元素的子元素列表的长度个数

        Document document = Jsoup.connect("https://pic.netbian.com/4kmeinv/index_2.html").get();

        /**
         * getElementsByTag() 根据标签名称获得一组对象
         * nodeName 标签的名称
         * text() 标签体的文本
         * html() 标签体的内容 包含标签
         * getElementsByClass("item"); 根据class名称 获得一组对象
         * children 孩子
         * parent 父元素
         * getElementById 根据id获得一个对象
         * getElementsByAttribute 根据属性获得一组对象
         */
        //需求1：获取index.html中所有h3标签名称的元素列表并打印输出 getElementsByTag()
        Elements h3Elements = document.getElementsByTag("li");
        for (Element h3Element : h3Elements) {
            //System.out.println(h3Element);
            //System.out.println(h3Element.nodeName());//标签名称
            //System.out.println(h3Element.text());//内容
        }

        //需求2：获取index.html中所有元素含有class属性值为item并打印输出 getElementsByClass()
        //标签 <标签名称  class="值">
        Elements itemElements = document.getElementsByClass("nav-link");
        for (Element itemElement : itemElements) {
           //System.out.println(itemElements.html()); //html()拿文本
        }

        //需求3：获取index.html中所有元素含有属性data-toggle所有元素列表并打印输出 getElementsByAttribute()
        //getElementsByAttribute 根据标签具有某个属性的时候 获得标签
        Elements toggleElements = document.getElementsByAttribute("href");
        for (Element toggleElement : toggleElements) {
           // System.out.println(toggleElement);
        }

        //需求4：获取index.html中元素属性id="footer"的一个元素并打印输出 getElementById()

        // <标签 id="值" >  =>>  document.getElementById("值");
        Element footerElement = document.getElementById("footer");
        //System.out.println(footerElement.html());

        //需求5：获取index.html中元素属性id="footer"的一个元素的父元素标签名称并打印输出
        Element parent = footerElement.parent();
        //System.out.println(parent.nodeName());
        //需求6：获取index.html中元素属性id="footer"的元素的父元素的子元素列表的长度个数
        int size = parent.children().size();
        System.out.println(size);

    }

}
